package pe.edu.upc.dreamteam.service.rest;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestParam;

import com.google.gson.Gson;

import pe.edu.upc.dreamteam.bean.Reserva;
import pe.edu.upc.dreamteam.bean.Vuelo;
import pe.edu.upc.dreamteam.dao.ReservaDAO;
import pe.edu.upc.dreamteam.service.jms.JmsReservas;

@Path("/Reservas")
@Consumes({ MediaType.TEXT_PLAIN })
@Produces({ MediaType.TEXT_PLAIN })
public class Reservas {
	
	@Autowired
	ReservaDAO reservaDAO;
	
	@Autowired
	JmsReservas jmsReservas;
	
	private Gson gson = new Gson();
	
	@POST
	public Response reservar(@RequestParam("idVuelo") String idVuelo, @RequestParam("nroAsiento") String nroAsiento, @RequestParam("dni") String dni,@RequestParam("cliente") String cliente) {
		
		String json= "{\"idVuelo\":\" " + idVuelo + "\",\"nroAsiento\":\"" + nroAsiento + "\",\"dni\":\"" + dni + "\",\"cliente\":\"" + cliente + "\"}";
		
		System.out.println(json);
		
		Reserva reserva = gson.fromJson(json, Reserva.class);
		reserva.setFechaReserva(java.util.Calendar.getInstance().getTime());
		reserva.setEstado("Activo");
		jmsReservas.reservar(reserva);
		return Response.ok(gson.toJson(reserva)).build();
	}
	
	@GET
	public Response consultarReservas() {
		List<Reserva> listado = reservaDAO.consultarReservas();
		return Response.ok(gson.toJson(listado)).build();
	}
	
	@GET
	@Path("/{id}")
	public Response consultarReserva(@PathParam("id")Integer id) {
		Reserva reserva = reservaDAO.consultarReserva(id);
		return Response.ok(gson.toJson(reserva)).build();
	}
}
